gpt4 book ai didi

javascript - 创建一个 Javascript RegExp 以在 HTML/php 模板中查找开始标签

转载 作者:行者123 更新时间:2023-12-03 20:58:13 26 4
gpt4 key购买 nike

我正在尝试编写一个 Javascript HTML/php 解析器,它会从 HTML/php 源中提取所有开始标签,并返回标签的类型和属性及其值,同时监视是否应评估值/属性静态文本或 php 变量。问题是当我尝试编写 Javascript RegExp 模式时,更具体地说是某些罕见的情况。我能够想出的正则表达式要么涉及负向后视(以应对结束的 php 标记——即匹配前面没有问号的结束括号)或在某些情况下失败。回顾版本看起来像:

<[a-zA-Z]+.*?(?<!\?)>

...并且工作完美,除了我的情况,必须避免使用后视。一个更 Javascript 友好的版本是:
<[a-zA-Z]+((.(?!</)(?!<[a-zA-Z]+))*)?>

...除了在这种情况下有效:
<option value="<?php echo $img; ?>"<?php echo ($hpb[$i]['image_filename']==$img?' selected="selected"':''); ?>><?php echo $img; ?></option>

我在处理问题时是否完全一团糟,还是在我的情况下真的需要后视?任何帮助是极大的赞赏。

最佳答案

只需使用 [^?] 确保 '>' 之前的最后一个字母不是 ?。不需要前瞻或后退。

<[a-zA-Z](.*?[^?])?>

括号和最后一个?也匹配像 <b> 这样的标签.

编辑 该解决方案不适用于没有属性的单字符标签。所以这是一个这样做的:
<[a-zA-Z]+(>|.*?[^?]>)

关于javascript - 创建一个 Javascript RegExp 以在 HTML/php 模板中查找开始标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8038235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com