【问题标题】:How to use a regex to find and replace the beginning and end of a string如何使用正则表达式查找和替换字符串的开头和结尾
【发布时间】:2019-11-11 08:30:03
【问题描述】:

我有很多这样的字符串:

<string name="minutes">minutes</string>
<string name="hours">hours</string>
<string name="zero_minutes">None</string>

我只想获取值:

minutes
hours
None

我想做一个正则表达式来查找所有以&lt;string 开头并以"&gt; 结尾并替换为空格的表达式。我该怎么做?

我经历了多个主题,但我的表达方式不起作用:

com\/\K<string(\/.*?)\">

【问题讨论】:

  • 你是这个意思吗? &lt;/?string\b[^&lt;&gt;]*&gt; regex101.com/r/lrolhX/1 如果你想要这些值,也许使用解析器会更好。
  • 只是好奇这是否对&gt;(.+)&lt; 有帮助,其中第一个捕获的组会给出您感兴趣的值。
  • 正则表达式不是处理 HTML 的好选择。虽然它们可能适用于单个文件,但如果后续文件的格式不同,则模式可能会失败,从而导致系统崩溃。相反,学习使用 HTML 解析器并用它处理 HTML。您的系统将更加强大。

标签: regex sublimetext3


【解决方案1】:

查找

<string[^>]*>([^<]*)</string>

替换

$1

请注意,此正则表达式很脆弱,不会考虑空格(例如&lt; string&gt;)或引号内的插入符号(例如&lt;string name="&gt;"&gt;)。最好使用解析器。

【讨论】:

    猜你喜欢
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    相关资源
    最近更新 更多