FM12: Quirks in Find/replace using RegEx (Perl)

Scott Prentice sp10 at leximation.com
Mon Jul 7 16:57:03 PDT 2014


I dunno. I just don't like the fact that "\n" will match on a line end 
(of some type), while it replaces as an "n" .. that's not right.

...scott

On 7/7/14 4:52 PM, Syed Zaeem Hosain (Syed.Hosain at aeris.net) wrote:
>
> Yeah ... I have to admit that I can't argue with you on this too much. 
> JBecause, there isn't a simple "this is the right way" to do the EOP 
> insertions.
>
> Although ... /maybe/ ... Word stands a slightly better chance because 
> of its "Normal" paragraph that /could/ get applied by default. Of 
> course, as you note, this could cause a mess with documents whose 
> paragraphs have already been changed to some other paragraph format, etc.
>
> Z
>
> *From:*Fred Ridder [mailto:docudoc at hotmail.com]
> *Sent:* Monday, July 07, 2014 10:18 AM
> *To:* Syed Zaeem Hosain (Syed.Hosain at aeris.net); frame at daube.ch; 
> framers at lists.frameusers.com
> *Subject:* RE: FM12: Quirks in Find/replace using RegEx (Perl)
>
> Don't get me wrong. I'm not saying that it wouldn't be *useful* to be 
> able to insert a new EOP. But the reality is that in either Word or 
> FrameMaker (and I assume in other word processing applications) it is 
> problematic because EOP is not a simple character. Regular expressions 
> are designed to work with arbitrary strings of simple characters. They 
> were never intended to handle characters that have formatting or page 
> layout properties embedded in them. If a regular expression *were* 
> able to insert a new EOP, what formatting should apply to it? Since 
> regular expressions don't know about formatting, the only practical 
> answer is the lowest level default formatting. But in any properly 
> designed word processor document (i.e., one that uses styles) that 
> default is going to be *wrong* in >99% of cases and require further, 
> manual attention from the author, which really defeats the benefit of 
> being able to use a regular expression replacement. A simple text 
> editor is a completely different situation because there really is 
> nothing special about an EOP.
>
> I think the real point is that in Klaus' case the analysis of the task 
> was slightly flawed. To fix his punctuation issue, what he really 
> wants to do is insert a period (full stop) between the current 
> unpunctuated text and the existing EOP, which is exactly what his 
> second regular expression does. There really is no reason to delete 
> the existing EOP (and all the "magic" embedded in it) and replace it 
> with a brand-new, untagged EOP that would require his manual attention 
> to tag and/or format. FrameMaker's behavior of not allowing this saves 
> the user from having to do a lot of after-the-fact cleanup.
>
> FrameMaker's regular expressions let you find EOPs without issue, and 
> lets you reuse them. What they don't let you do is try to create a new 
> one where there is insufficient information in the found text 
> string(s) to do that operation without making a mess.
>
> -Fred
>
> ------------------------------------------------------------------------
>
> From: Syed.Hosain at aeris.net <mailto:Syed.Hosain at aeris.net>
> To: docudoc at hotmail.com <mailto:docudoc at hotmail.com>; frame at daube.ch 
> <mailto:frame at daube.ch>; framers at lists.frameusers.com 
> <mailto:framers at lists.frameusers.com>
> Date: Mon, 7 Jul 2014 09:10:33 -0700
> Subject: RE: FM12: Quirks in Find/replace using RegEx (Perl)
>
> Hi, Fred.
>
> Hmmm ... I understand your point, but am not sure I would /entirely/ 
> agree with the reasoning.
>
> Yes, FrameMaker (and other programs like Word) do put in additional 
> information besides the EOP glyph itself.
>
>
> But, this is a relatively commonly used/desired function -- certainly 
> in simple text editors -- to replace an EOP with other characters 
> (perhaps including an EOP). For example, to "join" multiple lines 
> together, or to do what Klaus mentions.
>
> Yes, FM is /not/ just a simple text editor, which is why I see your 
> reasoning to not call it a bug.
>
> But I think it would be good to define exactly what regular expression 
> matching is supposed to do with EOP markers then (or have a special 
> mechanism to identify /and/ use an EOP more effectively perhaps?)
>
> Z
>
> *From:*framers-bounces at lists.frameusers.com 
> <mailto:framers-bounces at lists.frameusers.com> 
> [mailto:framers-bounces at lists.frameusers.com] *On Behalf Of *Fred Ridder
> *Sent:* Monday, July 07, 2014 8:02 AM
> *To:* frame at daube.ch <mailto:frame at daube.ch>; 
> framers at lists.frameusers.com <mailto:framers at lists.frameusers.com>
> *Subject:* RE: FM12: Quirks in Find/replace using RegEx (Perl)
>
> No, I don't think it is a bug.
> And end-of-paragraph mark is not a simple glyph; it has properties and 
> attributes associated with it (e.g. a paragraph tag, the formatting 
> associated with that paragraph tag, and any overrides to the standard 
> formatting for the tag).
> You can find an EOP as if it were a simple glyph because they do have 
> a common fundamental property (i.e. denoting the end of a paragraph).
> But you cannot effectively insert a new EOP in a replace string 
> because there is no way to associate any of the other properties with 
> the new mark.
> Finding an EOP and replacing it with itself, on the other hand, is a 
> valid operation because the found mark has a full complement of 
> paragraph properties.
>
> -Fred Ridder
>
> > From: frame at daube.ch <mailto:frame at daube.ch>
> > To: framers at lists.frameusers.com <mailto:framers at lists.frameusers.com>
> > Date: Mon, 7 Jul 2014 15:48:17 +0200
> > Subject: FM12: Quirks in Find/replace using RegEx (Perl)
> >
> > Friends of FramMaker, please judge.
> >
> > I want to find incorrectly ended paragraphs (missing punctuation).
> > For example the following 4 lines are paragraphs, the first 2 correct,
> > the next two incorrect:
> >
> > This is the first paragraph!
> > And this is the second one.
> > And here a third
> > And a fourth one:
> >
> > RegEx Find/Replace with these settings:
> > Find: ([^\.!?])\n
> > Repl: $1.\n
> > Result: find is correct, replacement is n instead of paragraph end
> > With repl = $1.\r replacement is a forced newline; correct, but not 
> wanted.
> >
> > Find: ([^\.!?])(\n)
> > Repl: $1.$2
> > This creates a correct replacement!
> >
> > IMHO the behaviour of not honoring \n as an 'end of paragraph' for 
> the replacement is
> > a bug. Do You agree?
> >
> > Klaus Daube
>
>
>
> _______________________________________________
>
>
> You are currently subscribed to framers as sp10 at leximation.com.
>
> Send list messages to framers at lists.frameusers.com.
>
> To unsubscribe send a blank email to
> framers-unsubscribe at lists.frameusers.com
> or visit http://lists.frameusers.com/mailman/options/framers/sp10%40leximation.com
>
> Send administrative questions to listadmin at frameusers.com. Visit
> http://www.frameusers.com/ for more resources and info.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.frameusers.com/pipermail/framers-frameusers.com/attachments/20140707/21f29b36/attachment.htm>


More information about the framers mailing list