Javascript转换

时间:2014-05-30 09:52:04

标签: regex

有没有简单的转换方法:

"<A[hello|home]>"

到:

"hello|home" 

谢谢!

1 个答案:

答案 0 :(得分:2)

除了评论中简单删除某些字符的明智建议外,如果由于文本中其他地方存在并且想要匹配该格式而无法删除这些字符,这里有一种方法可以使用正则表达式:

搜索:<\w+\[([^|]*\|[^\]]*)\]>

替换:\1$1,具体取决于编辑器或正则表达式引擎。

请参阅demo底部的Substitution窗格。

<强>解释

<\w+\[([^|]*\|[^\]]*)\]>
  • 匹配字符“&lt;”字面意思<
  • 匹配单个字符“单词字符”(Unicode;任何字母或表意符号,数字,连接符标点符号)\w+
    • 在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)+
  • 匹配字符“[”字面意思\[
  • 匹配下面的正则表达式并将其匹配捕获到反向引用号1 ([^|]*\|[^\]]*)
    • 匹配任何不是“|”[^|]*的字符
      • 在零和无限次之间,尽可能多次,根据需要回馈(贪婪)*
    • 字面匹配“|”\|
    • 匹配任何不是“]”[^\]]*的字符
      • 在零和无限次之间,尽可能多次,根据需要回馈(贪婪)*
  • 匹配字符“]”字面意思\]
  • 匹配字符“&gt;”字面意思>

\ 1

  • 插入反斜杠字符\
  • 字面上插入字符“1”1