选择RegEx的开始和结束

时间:2014-03-02 19:29:37

标签: regex

我在命名这个问题时遇到了麻烦,感觉这就是我应该发现自己的东西,但我似乎太愚蠢了。 RegEx对我来说仍然非常复杂,所以请不要对我太苛刻。

基本上,我有一个庞大的文本列表,我需要提取某些单词部分。我知道这个词周围的面具,但我显然只需要这个词本身。让我试着给你一个简单的例子:

<b>Name1</b>
<i>Name2</i>
<u>Name3</u>

我可以清楚地看到我想要的东西都被&lt;&gt;所包围标签。我的方法总是找到整个字符串,然后简单地做一个普通的替换来摆脱这些额外的字符。

<\w>{1}\w+<\/\w>{1}
string.replace("<b>","");
string.replace("</b>","");
... and so on.

然而,有些事情只是错了。就像,非常错误。我不能直接在我的RegEx搜索中说出我到底想要的是什么?像:

<\w>{1}START\w+END<\/\w>{1}

这样的事情是否存在?

(这是一个普遍的问题,而不是一个特定的问题,所以请不要提供替代解决方法或其他东西。我已经有很多次问题,而且我已经厌倦了用这个hackish来解决它方式。)

2 个答案:

答案 0 :(得分:1)

(?!<\w>)\w+(?=<\/\w>)这样的正则表达式可能正是您所寻找的。请参阅此处示例regextester

答案 1 :(得分:1)

<[^>]+>([^<]+)<\/[^>]+>怎么样?它将匹配整个“标签”,但它只会捕获标签之间的内容......