【问题标题】:Get part of the string using regexp [closed]使用正则表达式获取部分字符串[关闭]
【发布时间】:2014-01-20 02:16:51
【问题描述】:

我有一个字符串,可以有如下文本:

'some text user#t12# some text'
'username#John# some text'
'some text usersurname#Malks#'
'userphoto#1.jpg#'

如何获取# 和# 符号之间的文本?

要搜索的字符串部分有一个典型的结构 - type#variable#

type 是一个JS 变量 type,它放在第一个# 之前。

variable 是我需要获取的文本。

我正在寻找一个正则表达式,它返回variable,介于#...# 之间。

问题是,我对正则表达式不太熟悉,你能帮帮我吗?

【问题讨论】:

  • 那么你自己做了什么来解决这个问题?
  • 我自己编写代码时运气不好。
  • @Steve 如果你知道每个元素的确切位置,为什么不使用split函数呢?
  • 拆分太贵了
  • @Steve indexOf + substring ?

标签: javascript regex string search


【解决方案1】:

您需要使用捕获组,基本上在正则表达式中,括号中的任何内容都将成为 cpature 组的一部分,在这种情况下,您想要捕获两个哈希之间的所有字符。任意数量的字符正则表达式是 .* 所以这是你想要在两个散列之间捕获的内容。一旦你执行它,你会在数组中找到第二个匹配项(第一个将是带有哈希的字符串。

var type = "";
var myString = "some text user#t12# some text";
var myRegexp = new RegExp(type+"#(.*)#","g");
var match = myRegexp.exec(myString);
alert(match[1]);  // t12

哈希之间的任何其他匹配都将在 match[2].. match[n]

【讨论】:

  • 我需要支持var1变量,即直接放在第一个#之前
  • 另外,可以有多个#...#,有些可能不是我搜索的字符串的一部分
  • 你能举个例子吗?我不明白
  • 我已经更新了问题
  • 示例:var type = something; /type#(.*)#/g
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-05
  • 1970-01-01
  • 2020-05-13
  • 2021-12-10
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多