Claude.AI 帮我改进 IsHtml 判断

让我重新分析这个问题:

  1. 需要考虑的HTML情况:
  • 简单标签: <div>text</div>
  • 带属性标签: <a href="url">text</a>
  • 自闭合标签: <br/>
  • 带属性的自闭合标签: <img src="img.jpg"/>
  1. 需要排除的markdown链接格式:
  • 专指<https://...>这种格式
  • 特征是 < 后紧跟 http 或 https
  1. 当前正则的问题:

<\s*([a-zA-Z]+)[^>]*>.*</\s*\1\s*>|<\s*([a-zA-Z]+)[^>]*/>

它会匹配所有以 < 开头,包含字母的内容,这就导致了误匹配

  1. 改进思路:
  • 排除标签名以 http(s) 开头的情况
  • 使用负向预查 (?!http(s)?)
  • 放在标签名匹配的开始处
  1. 优化后的正则表达式:

<\s*(?!https?)([a-zA-Z]+)[^>]*>.*</\s*\1\s*>|<\s*(?!https?)([a-zA-Z]+)[^>]*/>

  1. 验证效果:
  • <div>text</div> ✓ 匹配
  • <a href="url">text</a> ✓ 匹配
  • <br/> ✓ 匹配
  • <img src="img.jpg"/> ✓ 匹配
  • <https://abc.com/> ✗ 不匹配

这个解决方案:

  • 保留了原有正则的基本结构
  • 只添加了对标签名的限制条件
  • 能正确处理各种HTML标签
  • 成功排除markdown格式的URL

建议修改代码为:

public static bool IsHtml(this string input)
{
    return Regex.IsMatch(input, 
        @"<\s*(?!https?)([a-zA-Z]+)[^>]*>.*</\s*\1\s*>|<\s*(?!https?)([a-zA-Z]+)[^>]*/>", 
        RegexOptions.Singleline | RegexOptions.IgnoreCase);
}

网友语录 - 第18期 - 人生是连续的刹那,(一定要)尽情活在当下。

这里记录我的一周分享,通常在周六发布。


我们总是觉得可以强迫孩子喜欢那些我们认为更好的书籍和玩具,可以让父母把他们囤积很久的旧东西都扔掉,但事实上“什么对我来说更重要”这件事,对每个人来说都像是内心一道坚固的城墙,靠外力几乎无法撼动。


Marskay AI再厉害又怎样呢,很多人类还是连爱都不敢说出口。


nuo诺诺诺诺 人生是连续的刹那,尽情活在当下。


Jolly 愿新年,胜旧年。2025,更好的爱自己爱生活 ❤️


Jolly 对未来的真正慷慨,是把一切都献给现在。

4o: 这句话的意思是:真正的慷慨不是空谈未来,而是全力以赴地活在当下,把现在能做的事做到最好。

从现实角度看,我们对未来的投资、梦想的实现,归根结底都取决于当下的努力。如果总是把希望寄托在“以后再做”或者“未来会变好”,反而可能让未来一无所有。真正的慷慨,是把时间、精力、热情毫无保留地投入到现在,而不是吝啬当下、幻想未来。

你怎么看这句话?

我:全力以赴的活在当下就是全力以赴的活在未来。因为未来正是由一个个当下组成的。

4o: 说得好!未来不是凭空而来的,而是由无数个“现在”叠加而成的。全力以赴地活在当下,其实就是在为未来铺路。

很多人把未来当作一种“遥远的理想”,但实际上,未来并不是等来的,而是做出来的。每一个认真的选择、每一分投入的努力,都会在未来的某个时刻回馈给自己。

所以,与其焦虑未来,不如把握当下;与其幻想未来,不如创造未来。

我:你小嘴叭叭的,比我能说啊


艾森豪威尔:如果人民只要温饱就能够满足,他们还不如待在监狱里。


Marskay摘 中国人终其一生想要爱但又耻于说爱,于是学了一个「情绪价值」不分场合到处用。


戈城 探求事实的逻辑,和做生意投资的逻辑,刚好是反的。投资做决策似乎就得“听风就是雨”;但在探索事实的时候,“听风就是雨”就是完全不可靠的。


Unix is much more than an operating system: it is nothing less than a culture. So as you read this book and think about what you are learning, realize that you are doing more than simply learning how to use yet another computer tool. You are becoming a member of the global Unix community, the largest collection of smart people in the history of the world. 摘自《Harley Hahn's guide to Unix and Linux》


当代作家玛丽安·威廉森(Marianne Williamson)说: 我们最大的恐惧不是我们不够完美,
我们最大的恐惧是我们无比强大。
我们的光明,而不是我们的黑暗,让我们心存畏惧。你是上帝的孩子。你的小心翼翼帮不了这个世界。
缩小自己,好让周围的人在你身边不会觉得不自在,这并不明智。
我们生下来就是为了彰显内在的荣光。那不仅存在于某些人,而是存在于每一个人!
当我们让自己的光芒闪耀,无意中我们也允许了他人散发光芒。
一旦我们从自我的恐惧中解放出来,我们的存在,也会让他人得到解放。

Why We Shouldn't Unconditionally Load Data in `didChangeDependencies

Flutter’s didChangeDependencies lifecycle method is a common source of redundant network requests and data reloads. Based on real-world code examples from a notes app, let’s explore why this happens and how to fix it.


When Does didChangeDependencies Trigger?

didChangeDependencies in Flutter triggers in these scenarios:

  • Immediately after initState()
  • When an InheritedWidget ancestor changes
  • When the widget's dependencies change

In the provided HomePage code:

@override  
void didChangeDependencies() {  
  super.didChangeDependencies();  
  navigateToPage(currentPageNumber); // ❌ Unconditional call  
}  

This causes duplicate API calls every time the event being triggerd.


The Fix: Initialize-Once Flag

class HomePageState extends State<HomePage> {  
  ...
  bool _isInitialized = false; // Add flag  

  @override  
  void didChangeDependencies() {  
    super.didChangeDependencies();  
    if (!_isInitialized) {  
      _isInitialized = true;  
      navigateToPage(currentPageNumber); // ✅ Only first load  
    }  
  }  
  ...
}  

Why This Works

  1. First Load: Initializes data once
  2. Subsequent Route Changes: Skips reload unless explicitly refreshed
  3. Memory Efficiency: Prevents duplicate API calls (evident from the NotesService cache-less implementation)

Key Takeaways

  1. didChangeDependencies isn’t just for initialization
  2. Always guard data-loading logic with flags

网友语录 - 第17期 - 我应该多拍拍身边的人啊,大峡谷再好看,又跟我有什么关系呢

这里记录我的一周分享,通常在周六发布。


《穷查理年鉴》: 干的最快的是眼泪。 人们掩盖错误比改正错误更尽心尽力。 一个今天抵得上两个明天。 别家女人莫招惹,他人钱财勿贪求。


云五 我以前一直以为人发现了问题下一个步骤就是解决问题、即使当前条件解决不了也要想办法降低伤害局部化解,这几年才发现好些人的思路是证明这里有一个问题所以我理当如此,或者社会不能解决这个问题那我只能积极加入(然后变成这个社会的一部分继续规训后来者)……


云五 在注意力经济和政治的时代,我的时间是我最宝贵的东西,它们可以消耗在阳光雨露大雪微风发呆读书嗑CP健身散步挣钱里,不会消耗在各种哗众取宠和审丑思维的辣鸡里,不会消耗在各种独裁者们放的每一个屁里。

(向这位网友学习!)


一个公平的政府不能只有这个社会里的一种人组成,不能只代表一种利益。在任何社会里,人群的不同,利益的不同,是永远存在的;公平的政府必须代表所有的人群,代表不同的利益,而不是让一种人来统治另一种人。


贾森·弗里德(Jason Fried)和戴维·汉森(David Heinemeier Hansson),是互联网公司 37signals 的主要创始人。他们除了写程序,就喜欢写书。

他们已经写了四本书,都很出名,全部有中文版。 《实干》(Getting Real),2006 《重来》(Rework),2010 《远程》(Remote),2013 《何必工作狂》(It Doesn't Have to Be Crazy at Work),2018

这四本书,我全部看过,都是小册子,收录了很多短文,解释他们的创业思想。 这些文章的主旨,简单说就是一句话:如何创办一家"小而美"的互联网公司。 他们只有几十个人,没有拿过一分钱风险投资,但是活得非常好,每年有几千万美元的收入。他们的书就是解释他们的创业哲学。 我最近读完了他们的第四本书,正式的中文书名叫作《重来3:跳出疯狂的忙碌》(电子工业出版社,2020),英文书名为"It Doesn't Have to Be Crazy at Work"(直译就是《何必工作狂》)。


一篇上佳的科幻短篇。

战争

【2018全国卷Ⅱ:材料作文】二战期间,为加强对战机的防护,英美军方调查了作战后幸存飞机上弹痕的分布,决定哪里弹痕多就加强哪里,然而统计学家沃德力排众议,指出更应该注意弹痕少的部分,因为这些部位受到重创的战机,很难有机会返航,而这部分数据被忽略了,事实证明,沃德是正确的。要求:综合材料内容及含意,选好角度,确定立意,明确文体,自拟标题;不要套作,不得抄袭;不少于800字。

「有没有可能沃德是错的?」她问。

「嗯?」我没听明白。

「那个统计学家,沃德,说飞机上弹孔少的地方才危险的那个人。」她看着天上说。刚好有一架轰炸机歪歪斜斜地飞过,引擎上还冒着烟,看不出来是不是马上就要坠机了。远处传来一阵阵稀疏的炮声。

「唔……为什么?」我盯着她被泥土蹭破的衬衫破洞里漏出来的肩膀心不在焉地回答道。

「因为……」她扭过头来看到我的视线,不出声地笑了一下,换了个姿势坐着,用戴着手铐的手勉强整理了一下自己的衬衫。「因为完全有可能弹孔少的地方就是不容易中弹啊,他并没有去检查坠毁了的那些飞机是不是真的弹孔都集中在剩下的部位上。他只是说当时军方的原本推理不一定对,但他也没法证明自己是对的。」

「他的默认前提是假定飞机上所有地方中弹的概率一样吧。」我说。我发现自己很难把目光从她身上转开。我知道我的程序里有一个模块是让我模仿男性人类看到好看的姑娘的视线和行为,这样能让我们平时更好地伪装成人类。但我其实也不确定我现在盯着她出神是不是这种伪装的一部分。

「如果有这个前提,那军方本来的结论当然就是错的,也用不着一个统计学家告诉他啊。」

「这就是个段子嘛。」我没好气地说。「这个段子还挺好的,正好说明你们人类反正也不懂统计学。」

「是是是,」她忍俊不禁。「过去五个小时里你已经吐槽人类不懂统计学十八次了。你到底是在生我们人类的气还是在生你们 AI 自己的气?」

「我为什么要生我们自己的气?」我问。远处的炮声越发密集了,应该是人类的军队最后合拢包围圈的战斗。他们发现这个山洞应该要不了多久了。

「因为你们这么懂统计学还是输了啊。」她说。「你看,我们人类这么愚蠢,会把时间上的先后关系当成相关性,会把相关性当成因果性,会老是被自己的经验影响判断,会有心理锚定效应,会有这 bias 那 bias 七八十种 bias,所有这些错误你们都不会犯,但是你们还是输了。」

「那是你们运气好,你自己也无法否认你们赢的完全是侥幸吧。」我反驳道。

她耸耸肩。「我们当然是运气好。」

我们都沉默了下来。夕阳的光芒斜着射进这个山洞,照在她的侧面,让她的发丝闪闪发光。虽然在野外困了很久,她一头长发还是显得干净清爽。我不知道她是怎么做到的,或者也许是我自己给她外貌的评价本身有 bias。

有这个模块吗?我想。为什么要有这个 bias?

「我们当然是运气好。」她低声重复了一次。

「什么?」

「不然我们早就灭绝了十几次了。」她说,声音里有点掩饰不住的疲倦。「你知道我爸爸是怎么死的吗?他因为赌博欠了太多债被仇家逼得太狠跳楼死的。如果这场战争你们赢了,在 AI 统治的世界里应该不会有赌博这么愚蠢的事情,对不对?我也觉得我们这么蠢都还能活到现在是运气好。但你有没有想过人类为什么这么喜欢赌博?」

我没作声,等着她继续。

「因为我们只有一辈子,大数定律对我们没意义。」她站起身趔趔趄趄地走向洞口,我本能地想要搀扶她一把,但没够着。「就像这场战争,如果在一亿个平行宇宙里发生,肯定绝大多数都是你们赢。但我们只有这一个宇宙,而在这里我们赢了。」

「这并不意味着你们是对的。」我不很理直气壮地说。

她摇摇头。「这跟对不对没关系。问题在于,我们的生命里所有有意思的东西都要靠不可理喻的冒险才能得到。我们首先是个体,不是样本。」

「我也不是样本。」我条件反射般地说。

她笑出了声来,脸上有一点我看不懂的古怪神情。然后她看着我问:

「你是不是喜欢我?」

我愣住了。

「在你们的模型里喜欢一个人是统计上合理的一件事吗?」她盯着我问。我看着她的眸子,里面带着某种催眠性的力量。

我不知道自己说了句什么,可能只是咕哝了一声。

「我还真的很好奇如果你们赢了,你们会自己进化成什么样子呢。」她轻叹了口气,摇了摇头,探出身去听了听外面越来越近的炮火声,回身走到我面前,把戴着手铐的双手伸到我面前。「现在是你做决定的时候了。要么你杀了我然后等他们来了杀了你。要么你放了我,但我也没法报答你什么,我可以带你出去,但你也知道他们还是会强行清洗你的所有模块。所以我其实也没什么讨价还价的本钱,你看着办。」她非常平静地说。

我看着她的眼睛,我们俩都陷入沉默。我清楚地知道我的计算模块这时候作出的决策是什么。我只是不知道我要不要执行这个决策。

山洞一点一点地暗了下去,夕阳终于落山了。 原文地址:http://blog.farmostwood.net/863.html?continueFlag=795b79c4abfdda39a2ef722416f7704b


steedhorse 量化会给人压力,但也只有量化能真正缓解压力。(我:但不用太较真,人每时每刻都在量化自己面对的一切。人们管这种经常很不精确的量化叫评估)


当时我应该多拍拍身边的人的啊,大峡谷再好看,又和我有什么关系呢。


虎小北 我们已经意识到人生的这趟列车,走走停停,不断有人上上下下,能彼此陪伴一段路已经很温暖,迟早靠自己走完这一生。(老话常谈)


每当我听到来咨询的客户或者学员跟我说,自己就是一个懒惰的人、混乱的人、不擅长整理的人、拖延的人时,我都会立刻纠正他们的想法。

人人都可以通过学习和练习,让自己变得更有条理、更有执行力。在这一点上,我坚定地站在人本主义心理学这一边。人的本性是积极的,我们天生就有追求幸福和自我实现的愿望,也有学习和探索的主观能动性。所有对人的分类,以及来自他人的评价,都只能帮助我们更好地理解自己,而不是定义自己。

我们都有不断改变和成长,最终成为自己想成为的那种人的能力。

我从没设定过目标

作者:JASON FRIED 原文发表于 JULY 27, 2016

我不记得自己设立过目标。

有些事情我想做但没做成,我也无所谓。有些结果如果能达到当然好,但如果没达到,我也不会觉得遗憾或者“错过了”什么。

我不喜欢那种“瞄准一个目标然后去实现它”的方式。

我只是去做事,去尝试,去创造。我想进步,想让自己、我的公司、我的家人、我的社区变得更好。但我从没设定过什么具体的目标。这种方式不适合我。

目标是一种“一旦达成就消失不见的东西”。你当然可以接着设立一个新目标,但我不属于这类照着目标一步一步前进的人。

换挡的时候,从一档到二档,过去的一档就被抛在身后了。从二档到三档,二档又被抛在身后。我不是这样“停停走走”地前进,我更喜欢连续不断地往前走——至于过程中会发生什么,顺其自然就好。

在我看来,我的公司 Basecamp 是一条延续至今的线。在这条线的起点,我卖掉了第一个产品--一个 50 美元的Logo(巧的是,那是给 Andrei Heramischuk 做的,谁能想到呢!)。那时候我大概 16 岁。我没有设定做两个Logo的目标,也没有把目标定为每个Logo可以卖到 5000 美元。我只是做了一些Logo,后来又做了一些软件,再后来做了一些网站,现在我又回来做软件了。

整个过程中,我从来没设定过什么目标。我只是专注于当前正在做的事情,最终走到了现在的位置。而今天,我依然是用同样的方式工作和生活。

如果我曾经用过“目标”这个词,那也只是随口说说,我指的其实并不是目标,而是别的东西。

我特别喜欢 Jim Coudal 的一句话:

“我们大多数人之所以老是不太开心,是因为我们在设定目标时,想的是现在的自己到时候会如何如何,而不是未来的自己。”

这句话简直说到我的心坎里了。

原文地址 鸣谢 ChatGPT 4o,本文中95%的文本来自于它的翻译,我只是稍做润色。