Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取HTML标记之间的内容|特殊字符含义?_Html_Regex_Bash_Grep_Character - Fatal编程技术网

获取HTML标记之间的内容|特殊字符含义?

获取HTML标记之间的内容|特殊字符含义?,html,regex,bash,grep,character,Html,Regex,Bash,Grep,Character,在有人将此标记为重复之前,我想指出,我已经看到过这样的帖子: 遗憾的是,那里的解决方案对我不起作用 经过一段非常有用的评论后,我现在意识到我最初的问题不是在HTML标记之间获取文本,而是使用带有非ASCII字符的greps。因此,这个问题似乎是重复的。谢谢所有有用的评论,也很抱歉重复,我在这里发布之前在谷歌上搜索了一个小时 我认为字符“””是个问题,因为grep-E-o“().*”只匹配这个字符。我不知道这是为什么,并将感谢任何帮助或提示这一点 问题如下:我有一个文件,例如看起来像这样,我想提

在有人将此标记为重复之前,我想指出,我已经看到过这样的帖子:

遗憾的是,那里的解决方案对我不起作用

经过一段非常有用的评论后,我现在意识到我最初的问题不是在HTML标记之间获取文本,而是使用带有非ASCII字符的greps。因此,这个问题似乎是重复的。谢谢所有有用的评论,也很抱歉重复,我在这里发布之前在谷歌上搜索了一个小时

我认为字符“””是个问题,因为grep-E-o“().*”只匹配这个字符。我不知道这是为什么,并将感谢任何帮助或提示这一点

问题如下:我有一个文件,例如看起来像这样,我想提取强标记之间的文本:

> <p>Here is something</p> <ul>   <li>
>     <p><strong>Here is something else</strong> And I keep typing here
这里有些东西

  • >这里还有别的东西我一直在这里打字
强者总是在同一条线上,这应该会让事情变得更容易,至少我这么认为

我自己的想法使我想到

grep-E-o'\.\'test.txt

直到我意识到\<只查找单词的开头(我不确定<是否有特殊含义,所以我想逃避它)

然后我继续尝试
grep-E-o'().*(
),令人惊讶的是,它适用于我上面提供的测试文件

现在,事实是,原始文件在强标记之间有书名,书名往往包含撇号,我认为它们把事情搞砸了。 让我们看另一个示例文件:

> <p>Here is something</p> <ul>   <li>
> <p><strong>That`s a stupid</strong> And I keep typing here <p>>
> <strong>Complications: A Surgeon’s Notes on an Imperfect Science</strong> ?
> blablabla <p><strong>Another test, with this kind of ' apostrophe</strong> bla bla
这里有些东西

  • >那是个愚蠢的想法我一直在这里打字> >并发症:外科医生对不完美科学的注释? >布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉
现在使用grep from
grep-E-o'().*()”
只返回第一个和第三个匹配:

> <strong>That`s a stupid</strong> 
> <strong>Another test, with this kind of ' apostroph</strong>
那是个愚蠢的想法
>另一个测试,使用这种“撇号”
我不明白为什么

 "<strong>Complications: A Surgeon’s Notes on an Imperfect Science</strong>"
并发症:外科医生对不完美科学的注释 不匹配。 我很确定字符“'”是个问题,因为
grep-E-o'().*.
只匹配“并发症:外科医生”。 你知道为什么“'”这个字会出问题吗?我注意到,打印文件cat file.txt时,字符显示也不正确

此外,还有一个类似的注意事项:目前grep仍在返回标签。如何禁用此功能?我认为这里有一个参数我可以使用(这就是为什么我在代码中包含括号),但我似乎找不到它

谢谢大家,谢谢你们的帮助!
我还对格式错误感到非常抱歉,我认为示例文件中的HTML标记溢出到了问题中。

'
是一个不同于普通撇号
'
的字符,因此
与该字符不匹配可能是原因。也许一些字符集专家能对此有更多的了解。我会尝试改写问题/标题以避免它被关闭。如果你想知道的话,我只是注意到你已经发现了其中的大部分。我以前没有读过你的最后一段。谢谢你的提示!我确实更改了标题并添加了第一段。我对我的RegExp有什么可以避免这个问题的地方吗?例如,是否忽略非标准字符?或者我应该在第一步用“普通”撇号替换所有这些奇怪的撇号吗?如果我用regexp找不到它们,人们会怎么做呢?它实际上是Okay的一个副本,看起来它可能会在更多的谷歌搜索后解决我的问题。谢谢
与普通撇号
不同,因此
与该字符不匹配可能是原因。也许一些字符集专家能对此有更多的了解。我会尝试改写问题/标题以避免它被关闭。如果你想知道的话,我只是注意到你已经发现了其中的大部分。我以前没有读过你的最后一段。谢谢你的提示!我确实更改了标题并添加了第一段。我对我的RegExp有什么可以避免这个问题的地方吗?例如,是否忽略非标准字符?或者我应该在第一步用“普通”撇号替换所有这些奇怪的撇号吗?如果我用regexp找不到它们,人们会怎么做呢?它实际上是Okay的一个副本,看起来它可能会在更多的谷歌搜索后解决我的问题。谢谢