jjzjj

php - 使用正则表达式从网站的 HTML 源代码中提取内容

coder 2024-05-03 原文

<分区>

我正在尝试修复以下代码。

代码:

$pageData = file_get_contents('111234-2.html');
if(preg_match_all('/<a\s+onclick=["\']([^"\']+)["\']/i', $pageData, $links, PREG_PATTERN_ORDER))
     print_r(array_unique($links[1]));
return false;

我希望它从中获取的一些示例 HTML:

    <a onclick="doShowCHys=1;ShowWindowN(0,'http://www.example.com/home/Player.aspx?lpk4=116031&amp;playChapter=False',960,540,111234);return false;" href="javascript:void(0);">
<span class="vt">Welcome

        </span>
        <span class="dur">1m 10s</span>
        <span class="" id="bkmimgview-116031">&nbsp;</span>
        <br class="clear">
    </a>

我得到的输出:

Array ( [0] => doShowCHys=1;ShowWindowN(0, )

我希望的输出:

Array ( [0] => doShowCHys=1;ShowWindowN(0,'http://www.example.com/home/Player.aspx?lpk4=116031&amp;playChapter=False',960,540,111234);return false;)

我如何实现这一目标?

有关php - 使用正则表达式从网站的 HTML 源代码中提取内容的更多相关文章

  1. c# - 仅为公共(public)成员提取 xml 注释 - 2

    我正在使用xml注释来记录组件的公共(public)、内部和私有(private)成员。我想将生成的文档xml文件与组件程序集打包在一起,以便在最终产品中启用“丰富的”(例如,方法、异常和参数描述)VisualStudioIntellisense。它的问题是C#编译器为所有内容(包括内部类、方法、内部枚举的私有(private)字段等)创建文档条目,并且似乎没有切换到“仅公共(public)成员”模式。现在我不想遍历超过50个文件,每个文件都有XX方法,并删除私有(private)和内部成员的所有评论。即使我这样做了,我也可能不会在自动生成资源文件方面取得太大成功,因为这些强类型资源类

  2. c# - 转换为表达式主体似乎不起作用? - 2

    我有以下代码:publicboolIsUser{get{returnfalse;}}现在Resharper建议我将它写到:publicboolUseBands=>false;然而这并没有编译,我的编译器提示我应该添加一个“;”?更新我在VisualStudio2013Update4上使用Resharper9时遇到过这个问题。Resharper似乎在查看项目属性,它应该应用哪些建议规则。如果您遇到此问题,那么可能如Szer所述,您已经启用了C#6.0语言级别。要禁用它,只需在解决方案资源管理器中单击您的项目,然后将C#语言级别设置为C#6.0以外的级别。PS:由于我对更改项目设置的

  3. c# - 使用 Lambda 表达式获取方法名称 - 2

    我正在尝试使用lambda表达式获取类型上的方法名称。我正在使用WindowsIdentityFoundation,需要定义访问策略,其中类型名称和命名空间作为资源,方法名称作为操作。这是一个例子。这是我将从中获取类型名称和方法名称的类型:namespaceMy.OrderEntry{publicclassOrder{publicvoidAddItem(stringitemNumber,intquantity){}}}这就是我想通过DSL定义访问策略的方式:ForResource<Order>().Performing(o=>o.AddItem).AllowUsers

  4. c# - .NET Core 2.1 - 循环中的正则表达式比 2.0 慢 200 倍(简单基准测试中为 3 倍) - 2

    我有以下正则表达式:varregex=newRegex(@"^ActiveMQ[\d\.-]*$",RegexOptions.Compiled|RegexOptions.IgnoreCase|RegexOptions.CultureInvariant);它运行超过1000个字符串(IsMatch调用)。在.NETCore2.0中,它大约需要10ms。迁移到.NETCore2.1后,它会在2秒上处理相同的数据。知道发生了什么事吗?2.1中有任何行为变化吗?======================更新:BenchmarkDotNet可重现的3倍下降(只需运行,将cspr

  5. C#:编译表达式时,已经添加了具有相同键的项 - 2

    好的,这是一个棘手的问题。希望这里有一位表达大师可以发现我在这里做错了什么,因为我只是不明白。我正在构建用于过滤查询的表达式。为了简化这个过程,我有几个Expression<Func<T,bool>>使我的代码更清晰的扩展方法,到目前为止它们运行良好。我已经为所有的人写了测试,除了一个,我今天写了一个。那个测试完全失败了ArgumentException带有长堆栈跟踪。我就是不明白。特别是因为我已经在查询中成功使用该方法一段时间了!无论如何,这是我在运行测试时得到的堆栈跟踪:failed:System.ArgumentException:Anitemwithth

  6. c# - 如何重写查询表达式以用整数替换枚举? - 2

    受到能够在EF查询中使用枚举的愿望的启发,我正在考虑向我的存储库添加一个ExpressionVisitor,它将采用传入的标准/规范标准并重写它们以使用相应的持久int属性。我一直在我的(代码优先)实体中使用以下值后缀模式:publicclassUser:IEntity{publiclongID{get;set;}internalintMemberStatusValue{get;set;}publicMemberStatusMemberStatus{get{return(MemberStatus)MemberStatusValue;}set{MemberStatusValue=(int

  7. c# - 获取 "-"之前所有字符的正则表达式 - 2

    如何使用正则表达式获取字符"-"之前的字符串?例如,我有"text-1",我想返回"text"。 最佳答案 所以我看到了实现这一目标的许多可能性。stringtext="Foobar-test";正则表达式匹配所有内容直到第一个“-”Matchresult=Regex.Match(text,@"^.*?(?=-)");^从字符串的开头开始匹配.*?匹配任何字符(.),零次或多次(*)但尽可能少(?)(?=-)直到下一个字符是“-”(这是一个积极的展望)正则表达式从字符串的开头匹配任何不是“-”的内容M

  8. c# - 有人可以为我分解这个 lambda 表达式吗? - 2

    我正在查看来自TokenReplacementandIdentification的解决方案:stringresult=Regex.Replace(text,@"\[%RC:(\d+)%\]",match=>dict[int.Parse(match.Groups[1].Value)]);而且我不明白MatchEvaluator是如何重载的。我理解一些lambda表达式。它接受输入match然后从字典中查找一个整数?但是match的值从何而来?match=>dict[int.Parse(match.Groups[1].Value)]);返回的值去哪里了?编辑:你们中的

  9. c# - 如何获取正则表达式来检查字符串是否仅包含字母字符 [a-z] 或 [A-Z]? - 2

    我正在尝试创建一个正则表达式来验证给定的字符串是否仅包含字母字符a-z或A-Z。该字符串最长可达25个字母。(我不确定正则表达式是否可以检查字符串的长度)例子:1."abcdef"=true;2."a2bdef"=false;3."333"=false;4."j"=true;5."aaaaaaaaaaaaaaaaaaaaaaaaaaa"=false;//26个字母这是我目前所拥有的...尽管无法弄清楚它有什么问题正则表达式alphaPattern=newRegex("[^a-z]|[^A-Z]");我认为这意味着字符串只能包含a-z中的大写或小写字母,但是当我将它与包含所有字母的字符串

  10. c# - LINQ 表达式中的异常处理 - 2

    我有一个简单的LINQ表达式,例如:newDocs=(fromdocinallDocswhereGetDocument(doc.Key)!=nullselectdoc).ToList();问题是,GetDocument()可能会抛出异常。如何忽略所有GetDocument(doc.Key)==null或抛出异常的文档元素?旧学校的相同代码如下:foreach(vardocinallDocs){try{if(GetDocument(doc.Key)!=null)newDocs.Add(doc);}catch(Exception){//Donothing...}}

随机推荐

  1. c# winforms - DataGridView 重新加载后保存位置 - 2

    这是我的代码:privatevoidgetData(stringselectCommand){stringconnectionString=@"Server=localhost;User=SYSDBA;Password=masterkey;Database=C:\data\test.fdb";dataAdapter=newFbDataAdapter(selectCommand,connectionString);DataTabledata=newDataTable();dataAdapter.Fill(data);bindingSource.DataSource=dat

  2. c# - "() =>"在 C# 中是什么意思? - 2

    在CompositeApplicationGuidelines中遇到了以下行。我知道=>是一个lambda,但是()是什么意思?这还有哪些其他示例?它叫什么,我可以搜索一下吗?this.regionViewRegistry.RegisterViewWithRegion(RegionNames.SelectionRegion,()=>this.container.Resolve<EmployeesListPresenter>().View); 最佳答案 这是一个接受0个参数的lambda表达式http://msdn.

  3. c# - DragDrop 注册没有成功 - 2

    System.InvalidOperationException:DragDropregistrationdidnotsucceed.--->System.Threading.ThreadStateException:这个异常是什么意思?我在这一行尝试在运行时将面板添加到面板...splitReport.Panel1.Controls.Add(ChartPanel);在VS2008C#中工作 最佳答案 此异常意味着拥有面板(正在添加的面板)的线程已使用MTA线程模型进行了初始化。拖放系统要求调用线程使用STA线程模型(特别是它

  4. c# - 如何在特定选定项目内的 TFS 源代码管理中搜索特定文件? - 2

    代码:stringspName="usp_Test_Procedure.sql";vartfsPp=newTeamProjectPicker(TeamProjectPickerMode.SingleProject,false);tfsPp.ShowDialog();_tfs=tfsPp.SelectedTeamProjectCollection;if(tfsPp.SelectedProjects.Any()){_selectedTeamProject=tfsPp.SelectedProjects[0];}stringselectedProjectName=_select

  5. c# - 使用 mshtml 不起作用 - 2

    我有一个C#应用程序,我尝试使用一些mshtml元素。但我有一个问题。usingmshtml;命名空间给我一个错误是VisualStudio2012。这是我的源代码,namespaceTagger{usingmshtml;usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Runtime.CompilerServices;usingSystem.Text;publicclassHTMLForm{privatestring_action="";privatestri

  6. c# - EPPlus 自动过滤器仅适用于最后一个电池 - 2

    我希望标题中的每个单元格都包含一个自动过滤器。下面是我尝试使用的代码,但是autofilter仅在指定的最后一个单元格上设置。例如,如果我注释掉K1的autofilter命令,则创建电子表格时C1是唯一具有自动过滤器。//Headersws.Cells["A1"].Value="ChannelCode";ws.Cells["A1"].AutoFilter=true;ws.Cells["B1"].Value="DrmTerrDesc";ws.Cells["B1"].AutoFilter=tru

  7. c# - 无法分配,因为它是方法组 C#? - 2

    无法分配“AppendText”,因为它是“方法组”。publicpartialclassForm1:Form{Stringtext="";publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){Stringinches=textBox1.Text;text=ConvertToFeet(inches)+ConvertToYards(inches);textBox2.AppendText=text;}privateStringConvertToFeet(S

  8. c# - 将匿名类型列表转换为动态对象列表 - 2

    为什么我不能转换List<AnonymousObject>到List<dynamic>?我有以下代码:vardatasource=someList.Select(o=>new{x=o.A,y=o.B});dgvSomeGridView.DataSource=datasource.ToList();dgvSomeGridView.DataBind();然后我访问GridView.DataSource使用以下代码:vards=((List<dynamic>)dgvSomeGridView.DataSource);....但它在我将其转换为List&

  9. c# - 如何使用异步等待模式初始化对象 - 2

    我试图在我的服务类中遵循RAII模式,这意味着当一个对象被构建时,它就被完全初始化了。但是,我在使用异步API时遇到了困难。相关类的结构如下所示classServiceProvider:IServiceProvider//Isonlyusedthroughthisinterface{publicintImportantValue{get;set;}publiceventEventHandlerImportantValueUpdated;publicServiceProvider(IDependency1dep1,IDependency2dep2){//IDependency1provi

  10. c# - 如何使用 C# 以编程方式安装证书 - 2

    我学校的网页有自信任证书(必须手动安装)。我想创建一个程序,用于将certificate.cer(来自VisualStudio资源)安装到本地用户的Trustedrootcertificateauthority。你知道我如何在C#中做到这一点吗? 最佳答案 要以编程方式将证书添加到当前用户的受信任根存储,请使用X509Store和X509Certificate2类。例如:stringfile;//ContainsnameofcertificatefileX509Storestore=newX509Store(StoreName.Ro