我正在寻找 JavaScript 正则表达式,它将仅用每个单词的第一个字母替换文本 block 中的单词,但如果括号内有单词,则将它们保留在括号中。 目的是创建一个助记设备,用于记住剧本或戏剧剧本中的台词。我希望将实际台词缩减为首字母,但舞台方向(括号内)保持不变。
例如:
Test test test (test). Test (test test) test test.
将产生结果:
T t t (test). T (test test) t t.
使用:
.replace(/(\w)\w*/g,'$1')
产量:
T t t (t). T (t t) t t.
我对正则表达式的理解很差。我已经研究它好几天了,尝试了很多东西,但似乎无法找到解决方案。
最佳答案
您可以通过对正则表达式进行一些小的调整来完成此操作:
/(\w|\([^)]+\))\w*/
添加的部分 \([^)]+\)
匹配两对括号内的所有内容。
"Test test test (test). Test (test test) test test.".replace(/(\w|\([^)]+\))\w*/g,'$1')
>"T t t (test). T (test test) t t."
编辑:解决评论中提出的问题
"Test test test (test). Test (test. test.) test test. test(test) (test)test".replace(/(\w|\([^)]+)\w*/g,'$1')
>"T t t (test). T (test. test.) t t. t(test) (test)t"
关于JavaScript 正则表达式用第一个字母替换单词,除非在括号内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29463716/