我有这样一个字符串:
“#影响@John@Me Lorem ipsum door sit amet,奉献给精英们,让他们暂时参与劳动和生活。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,还必须因工作原因而受到伤害
我需要以两种方式“拆分”,删除第一个单词,因为它以“#”开头(我可以做/已经做过),第二个我想不出来-我需要从字符串中删除所有以@开头的单词(在上面是@Me和@John),并将它们放入一个新数组中,这样我就有了字符串
“Lorem ipsum Door sit amet,为精英献身,为劳工等临时雇员提供服务……”
阵列呢
{@约翰,@我}
以“@foo”开头的单词可以是任意长度,但可能少于8或10个字符
我找不到/写不出正确的正则表达式。我正在使用jQuery。
假设inputString是您的输入:
//remove all words starting with # (you had this already)
var s = inputString.replace(/#\w+\s*/g,'');
var names = []; //names array to keep words with @
var match, rx = /@\w+/g; //regex, starts with @ followed by multiple word characters. g = all matches
while(match = rx.exec(s) ) //find all matches
names.push(match[0]); //you could remove the name here, but it's easier to do the remove at the end to include spaces
//remove all words starting with @, including trailing spaces
var cleanstring = s.replace(/@\w+\s*/g,'');
运行后,名称将是包含所有@words的数组,cleanstring是不包含“特殊”单词的字符串。
您也可以选择在之后进行所有的“清洁”,但将其保留在示例中,因为您声明该部分正在工作。
要一次完成清理,您可以跳过#
的第一个替换,在inputstring上执行上面的rx.exec,然后用以下方法清理整个字符串:var清洗字符串=inputString.replace (/(@|#)\w\s*/g,'');
这将清除所有以#
或@
开头的单词,包括尾部空格。
一些有用的正则表达式链接:
问题内容: 我试图在问题历史记录中找到问题的答案,但是当他们浏览了几十个我放弃的匹配答案后,它们又回到了一千多个。所以这是我的问题。 我希望能够找到字符串中正好六个数字的第一个序列。给定字符串“一些文本987654321和一些更多的文本123456,以及其他一些文本再次654321和最后的更多文本”,我想找到与123456序列匹配的正则表达式。 我是regex的新手,对它如何工作的简短解释会很有帮
我有这些线。我希望有一个正则表达式来匹配它们,并在将它们传递给preg_match函数时返回true。 如何在正则表达式中创建与上述模式匹配的模式?像这样: 星号(*)表示任何单词。这是我目前掌握的正则表达式模式: 格式在单词上不匹配。如何在单词上匹配字符串?
我正在寻找一个可以在字符串1和字符串2中为abc.xyz返回true的regex。注意字符串值可以从abc.xyz更改为mnp.pqr 我尝试使用这个,但它与字符串2不匹配。
我尝试了这种模式,但发现第一个匹配的句子带有符号
问题内容: 我认为我遇到了一个听起来比实际容易的问题……我不太确定。我想定义一个正则表达式,并且要构建一些与之匹配的字符串。 我可以导入具有该功能的任何模块吗?最好不要使用或暴力破解方法。必须有一种更优雅的方法来做到这一点。 问题答案: 我一直在研究一个小的帮助程序库,用于使用Python生成随机字符串 它包含一个方法,该方法允许您从正则表达式创建字符串: 目前,它适用于大多数基本正则表达式。
我正在寻找正确的regex来为我提供以下结果: null 例子: 福吧 组1:foo 组2:bar 说明:在空格上拆分 组1:foo bar 描述:用双引号包围,所以将foo和bar分组,但不要打印双引号 null null null null null 组1:foo bar 组2:堆栈溢出 组1:foo'bar 组2:堆栈溢出 组3:如何 组4:do 组5:您 组6:do